diff -u -r a/usr/include/urcu/uatomic/generic.h b/usr/include/urcu/uatomic/generic.h
--- a/usr/include/urcu/uatomic/generic.h	2014-10-22 15:00:58.000000000 -0700
+++ b/usr/include/urcu/uatomic/generic.h	2020-10-30 21:38:28.550000000 -0700
@@ -69,10 +69,10 @@
 #endif
 #ifdef UATOMIC_HAS_ATOMIC_SHORT
 	case 2:
-		return __sync_val_compare_and_swap_2(addr, old, _new);
+		return __sync_val_compare_and_swap_2((uint16_t*) addr, old, _new);
 #endif
 	case 4:
-		return __sync_val_compare_and_swap_4(addr, old, _new);
+		return __sync_val_compare_and_swap_4((uint32_t*) addr, old, _new);
 #if (CAA_BITS_PER_LONG == 64)
 	case 8:
 		return __sync_val_compare_and_swap_8(addr, old, _new);
@@ -109,7 +109,7 @@
 		return;
 #endif
 	case 4:
-		__sync_and_and_fetch_4(addr, val);
+		__sync_and_and_fetch_4((uint32_t*) addr, val);
 		return;
 #if (CAA_BITS_PER_LONG == 64)
 	case 8:
@@ -148,7 +148,7 @@
 		return;
 #endif
 	case 4:
-		__sync_or_and_fetch_4(addr, val);
+		__sync_or_and_fetch_4((uint32_t*) addr, val);
 		return;
 #if (CAA_BITS_PER_LONG == 64)
 	case 8:
@@ -187,7 +187,7 @@
 		return __sync_add_and_fetch_2(addr, val);
 #endif
 	case 4:
-		return __sync_add_and_fetch_4(addr, val);
+		return __sync_add_and_fetch_4((uint32_t*) addr, val);
 #if (CAA_BITS_PER_LONG == 64)
 	case 8:
 		return __sync_add_and_fetch_8(addr, val);
